// v1
// 每个方法独立成为一个变量；缺点：变量太多，容易被覆盖
// v1.1
function checkName() {
  // 验证姓名
}
function checkEmail() {
  // 验证邮箱
}

// v1.2
var checkName = function() {}
var checkEmail = function() {}


// v2
// v2.1
var CheckObject = {
  checkName: function() {},
  checkEmail: function() {}
}

// v2.2 对象的另一种形式，及方法
var CheckObject = function() {}
CheckObject.checkName = function() {}
CheckObject.checkEmail = function() {}

// v2.3 每次返回新对象
var CheckObject = function() {
  return {
    checkName: function() {},
    checkEmail: function() {}
  }
}
// 调用
var a = CheckObject();
a.checkName();
a.checkEmail();

// v2.4 可以做一个类
var CheckObject = function() {
  this.checkName = function() {}
  this.checkEmail = function() {}
}
// 调用
var a = new CheckObject();
a.checkName();
a.checkEmail();

// v2.5 链式调用
var CheckObject = {
  checkName: function() {
    return this;
  },
  checkEmail: function() {
    return this;
  }
}
// 调用
CheckObject.checkName().checkEmail();

// v2.6 原型链方式
var CheckObject = function() {}
CheckObject.prototype = {
  checkName: function() {
    return this;
  },
  checkEmail: function() {
    return this;
  }
}
// 调用
var a = new CheckObject(); // 用的时候也需要创建
a.checkName().checkEmail();

